package online.lmds.sdmanage.main.device.dao;

import online.lmds.sdmanage.common.entity.Page;
import online.lmds.sdmanage.main.device.entity.DeviceLog;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * Created by Brighten Ma on 2017/5/1.
 * 设备状态记录dao
 */


@Repository("DeviceLogDao")
public interface DeviceLogDao {
    /**
     * 保存设备
     * @param e
     * @return
     */
    int save(@Param("e")DeviceLog e);

    /**
     * 通过设备id  删除设备
     * @param e  DeviceLog uid不为空
     * @return
     */


    DeviceLog getById(@Param("e") DeviceLog e);

    DeviceLog getByUid(@Param("e") DeviceLog e);


    int deleteByUid(@Param("e") DeviceLog e);

    /**
     * 通过设备id  删除设备
     * @param e  DeviceLog id不为空
     * @return
     */
    int deleteById(@Param("e") DeviceLog e);


    /**
     * 通过设备id 更新
     * @param e  DeviceLog id不为空
     * @return
     */
    int updateById(@Param("e") DeviceLog e);


    /**
     * 通过设备id 更新
     * @param e  DeviceLog uid不为空
     * @return
     */
    int updateByUid(@Param("e") DeviceLog e);


    /**
     * 通过设备id 更新Status
     * @param e  DeviceLog id不为空
     * @return
     */
    int updateStatusById(@Param("e") DeviceLog e);



    /**
     * 通过设备uid 更新Status
     * @param e  DeviceLog id不为空
     * @return
     */
    int updateStatusByUid(@Param("e") DeviceLog e);


    /**
     * 获取设备列表
     * 传入：userId， type， status
     *
     */
    List<DeviceLog> list(@Param("e") DeviceLog e, @Param("page") Page page);
}
